
#ifndef __FILE_SYSTEM_UNIX_H
#define __FILE_SYSTEM_UNIX_H

#include <unistd.h>
#include <sys/stat.h>

struct UnixTag {
  typedef char char_type;
};

template<>
class BasicFileSystem<UnixTag>
{

  typedef UnixTag::char_type char_type;

public:

  static bool isPathExists(const char_type* path) {
    return access(path, 0) == 0;
  }

  static bool removeFile(const char_type* filename) {
    return unlink(filename) == 0;
  }

  static bool createDirectory(const char_type* path) {
    return mkdir(path, 0) == 0;
  }

  static bool removeDirectory(const char_type* path) {
  }

};

#endif // __FILE_SYSTEM_UNIX_H
